;
(deftemplate napiwek
	(slot kto)
	(slot status (allowed-values tak bez) (default bez))
	(slot ile)
)


(deftemplate spoznienie
	(slot sprawdz (allowed-values tak nie) (default nie))
)

(deffacts spoznienie
	(sprawdz nie)
)

	
; 
(deffacts pasazer_spozniony
	(osoba
		(nazwa pasazer_spozniony)
		(koszt 30)
		(szybkosc 50)
		(bezpieczenstwo 90)
		(wygoda 85)
		(pojazd_mechaniczny tak)
		(rodzaj_pojazdu samochod)
	)
)

;;

(deffacts  napiwek1
	(napiwek
		(kto pasazer_spozniony)
		(ile 20)
		
	)
)


;
(defrule dam_napiwek
	?o <- (osoba (nazwa ?na) (bezpieczenstwo ?be) (szybkosc ?szy) (koszt ?ko) (rodzaj_pojazdu samochod))
	?n <- (napiwek (kto ?nn) (ile ?il) (status tak))
	?sp <- (spoznienie (sprawdz ?war))
	=>
		  if (= (str-compare ?na ?nn ) 0)
				then
					if (= (str-compare ?war tak) 0)
					 	then
					(modify ?o(bezpieczenstwo (+ ?be -10)) (koszt (+ ?ko ?il)) (szybkosc (+ ?szy 20)))
					(printout t ?na " jest spozniony - daje napiwek." crlf)
			)
)
;